#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:taotieren


"""
    rpi.gpio 需要 root 权限，板上运行需要使用
    sudo python old_clock.py
    使用 I2C OLED 显示器
    这个 HAT 要求同时启用 I2C 和 SPI
    可以通过 GitHub 下载这个 Adafruit 对应的库代码
        git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git
        cd Adafruit_Python_SSD1306
        sudo python setup.py install
    还需要安装 Python 的图像库（PIL）
        sudo pip install pillow

    每个 I2C 从属设备都有一个地址，该地址可以通过下面代码进行设置
        device = ssd1306(port=1, address=0x3C)
    对于许多廉价的 I2C 模块来说，它们的地址通常都是固定的 0x3C，
    但是也会有不同的时候，查对应模块的说明文档，或这用 I2C 工具去读总线上面的 I2C 设备。来获取地址。
"""

from oled.device import ssd1306
from oled.render import canvas
from PIL import ImageFont
import time
from datetime import datetime

# 设置显示
device = ssd1306(port=1, address=0x3C)
font_file = '/usr/share/fonts/truetype/freefont/FreeSansBold.ttf'
small_font = ImageFont.truetype('FreeSans.ttf', 12, filename=font_file)
large_font = ImageFont.truetype('FreeSans.ttf', 33, filename=font_file)


# 在 3 行上显示一条消息，第一行大字体
def display_message(top_line, line_2)
    global device
    with canvas(device) as draw:
        draw.text((0, 0), top_line, font=large_font, fill=255)
        draw.text((0, 50), line_2, font=small_font, fill=255)


while True:
    now = datetime.now()
    date_message = '{:%d %B %Y}'.format(now)
    time_message = '{:%H:%M:%s}'.format(now)
    display_message(time_message, date_message)
    time.sleep(1)
